﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QLSIM
{
    public partial class Form1 : Form
    {
        // doi tuong ket noi
        private SqlConnection m_sqlConnection;
        // chuoi ket noi
        string m_strConnectionString;
        // chuoi select
        string m_strSelectString;
        string m_strSelectString2;
       
        // chuoi insert
        string m_strInsertString;
        // chuoi delete
        string m_strDeleteString;
        // chuoi update
        string m_strUpdateString;

        // SQL command: select du lieu
        SqlCommand m_SelectCommand;
        SqlCommand m_SelectCommand1;
        SqlCommand m_SelectCommand2;
      
        // SQL Command : Them du lieu
        SqlCommand m_InsertCommand;
        // SQL Command: Xoa du lieu
        SqlCommand m_DeleteCommand;
        // SQL Command: Sua du lieu
        SqlCommand m_UpdateCommand;
        // đối tượng cầu nối dữ liệu
        SqlDataAdapter m_DataAdapter;
        SqlDataAdapter m_DataAdapter2;
       
        // đối tượng dataset
        DataSet m_dataSet;
        DataSet m_dataSet2;
       
        // đối tượng dataTable
        DataTable m_dataTable;
        DataTable m_dataTable2;
       
        
        public Form1()
        {
            InitializeComponent();
            // chuỗi kết nối vào cơ sở dữ liệu
            m_strConnectionString = "Server=localhost;Integrated security=SSPI;database=QLSIM";
            // câu lệnh truy vấn chọn dữ liệu


            // doi tuong sqlCommand


            // doi tuong dataAdapter
          
            // doi tuong dataset
          

            // doi tuong dataTable
           
            m_strSelectString = "select * from mang";
            m_strSelectString2 = "select * from sim";
           
            // doi tuong ket noi
            m_sqlConnection = new SqlConnection(m_strConnectionString);
            // doi tuong sqlCommand
            m_SelectCommand1 = new SqlCommand(m_strSelectString, m_sqlConnection);
            m_SelectCommand2 = new SqlCommand(m_strSelectString2, m_sqlConnection);
           
            // doi tuong dataAdapter
            m_DataAdapter = new SqlDataAdapter();
            m_DataAdapter2 = new SqlDataAdapter();
           
            // doi tuong dataset
            m_dataSet = new DataSet();
            m_dataSet2 = new DataSet();
           

            // doi tuong dataTable
            m_dataTable = new DataTable();
            m_dataTable2 = new DataTable();
         

            // mở kết nối trong sự kiện khởi tạo
            try
            {
                m_sqlConnection.Open();
            }
            catch (Exception ex)
            {
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                this.m_DataAdapter.SelectCommand = m_SelectCommand1;
                this.m_DataAdapter2.SelectCommand = m_SelectCommand2;
               
                // RESET LAI DATASET TRUOC KHI DO DU LIEU TU 
                // DATA ADAPTER
                m_dataSet.Reset();
                m_dataSet2.Reset();
               
                // Đẩy bảng dữ liệu lấy từ dataAdapter vào DataSet.
                m_DataAdapter.Fill(m_dataSet);
                m_DataAdapter2.Fill(m_dataSet2);
               
                // Trích đối tượng DataTable từ DataSet.
                m_dataTable = m_dataSet.Tables[0];
                m_dataTable2 = m_dataSet2.Tables[0];
               



                // xuat du lieu trong bang dataTable vao
                // dataGridView

                dataGridView1.DataSource = m_dataTable.DefaultView;
                dataGridView2.DataSource = m_dataTable2.DefaultView;


            }

            catch (Exception ex)
            {

                MessageBox.Show("Co loi trong qua trinh ket noi: " + ex.ToString());

            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            int r = 0;
            try
            {
                foreach (DataRow d in m_dataTable.Rows)
                {
                    // neu trùng
                    if (textBox1.Text == d["mamang"].ToString())
                    {
                        // Sua ten mon hoc theo txtTenMonHoc
                        MessageBox.Show("Trùng mã mạng"); r++;
                    }

                }
                // THUC HIEN CONG VIEC INSERT len giao dien dataGridView.

                if (r == 0)
                {
                    if (textBox1.Text == "")
                    {
                        MessageBox.Show("Chưa nhập mã mạng ");
                    }

                // khoi tao doi tuong m_strInsertString tai day
                    else
                    {
                        DataRow dtRow = m_dataTable.NewRow();
                        dtRow[0] = textBox1.Text;


                        dtRow[1] = textBox2.Text;
                        

                        m_dataTable.Rows.Add(dtRow);
                        string a = textBox1.Text;


                        string b = textBox2.Text;
                       

                        // NHỚ LÀ PHẢI CÓ DẤU NHÁY ĐƠN '
                        m_strInsertString = "insert into mang values('" + a + "','" + b + "')";

                        // khoi tao doi tuong m_InsertCommand o day
                        m_InsertCommand = new SqlCommand(m_strInsertString, m_sqlConnection);

                        // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                        this.m_DataAdapter.InsertCommand = m_InsertCommand;

                        //  THUC HIEN CONG VIEC INSERT VAO CO SO DU LIEU.
                        m_DataAdapter.Update(m_dataSet);
                        // Application.DoEvents();
                    }
                }

            }




            catch (Exception ex)
            {

                MessageBox.Show("Co loi trong qua trinh ket noi: " + ex.ToString());

            }

        }

        private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            int iRowIndex = -1;
            if (this.dataGridView1.SelectedCells.Count > 0)
            {
                iRowIndex = this.dataGridView1.SelectedCells[0].RowIndex;
            }

            if (iRowIndex >= 0)
            {
                DataGridViewRow dtRow = this.dataGridView1.Rows[iRowIndex];
                if (dtRow.Cells[0].Value != null)
                {

                    textBox1.Text = dtRow.Cells[0].Value.ToString();

                    textBox2.Text = dtRow.Cells[1].Value.ToString();
                   


                }

            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            int t = 0;
            try
            {

                // THUC HIEN CONG VIEC DELETE.                
                string a = textBox1.Text;


                // so sanh tung dòng của m_dataTable
                // với strMaMonHoc.


                if (textBox1.Text == "")
                {
                    MessageBox.Show("Hãy chọn mã mạng");


                }

                // khoi tao doi tuong m_strInsertString tai day
                else
                {
                    foreach (DataRow dtRow in m_dataTable.Rows)
                    {
                        // neu trùng
                        if (a == dtRow["mamang"].ToString())
                        {
                            // xoa dtRow ra khoi m_dataTable.
                            if (MessageBox.Show("Bạn thật sự muốn xoá", "Thông báo", MessageBoxButtons.OKCancel) == DialogResult.OK)
                            {

                                dtRow.Delete(); t++;
                            }


                        }

                    }

                    m_strDeleteString = "Delete from mang where mamang ='" + a + "'";

                   textBox1.Text = "";
                    textBox2.Text = "";
                    
                }
                // khoi tao doi tuong m_DeleteCommand o day
                m_DeleteCommand = new SqlCommand(m_strDeleteString, m_sqlConnection);

                // chọn DeleteCommand của m_dataAdapter là m_DeleteCommand
                this.m_DataAdapter.DeleteCommand = m_DeleteCommand;

                //  THUC HIEN CONG VIEC Delete VAO CO SO DU LIEU.
                m_DataAdapter.Update(m_dataSet);



            }

            catch (Exception ex)
            {



            }
           
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                               
                string a = textBox1.Text;
                
                string b = textBox2.Text;
               



                // cap nhat lai m_dataTable theo strTenMonHoc.
                foreach (DataRow dtRow in m_dataTable.Rows)
                {
                    // neu trùng
                    // Sua ten mon hoc theo txtTenMonHoc

                    if (a == dtRow["mamang"].ToString())
                    {
                        

                        

                      
                        dtRow[1] = textBox2.Text;

                    }
                }

                // khoi tao doi tuong m_strUpdateString tai day
                if (a != "")
                {

                    m_strUpdateString = " Update mang set tenmang='" + b + "'";
                }
                // khoi tao doi tuong m_UpdateCommand o day
                m_UpdateCommand = new SqlCommand(m_strUpdateString, m_sqlConnection);

                // chọn UpdateCommand của m_dataAdapter là m_UpdateCommand
                this.m_DataAdapter.UpdateCommand = m_UpdateCommand;

                //  THUC HIEN CONG VIEC Update VAO CO SO DU LIEU.
                m_DataAdapter.Update(m_dataSet);



            }

            catch (Exception ex)
            {

                MessageBox.Show("Co loi trong qua trinh ket noi: " + ex.ToString());

            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            int r = 0;
            try
            {
                foreach (DataRow d in m_dataTable2.Rows)
                {
                    // neu trùng
                    if (textBox3.Text == d["simso"].ToString())
                    {
                        // Sua ten mon hoc theo txtTenMonHoc
                        MessageBox.Show("Trùng số sim"); r++;
                    }

                }
                // THUC HIEN CONG VIEC INSERT len giao dien dataGridView.

                if (r == 0)
                {
                    if (textBox3.Text == "")
                    {
                        MessageBox.Show("Chưa nhập số sim ");
                    }

                // khoi tao doi tuong m_strInsertString tai day
                    else
                    {
                        DataRow dtRow = m_dataTable2.NewRow();
                        dtRow[0] = textBox3.Text;


                        dtRow[1] = textBox4.Text;
                        dtRow[2] = textBox5.Text;

                        m_dataTable2.Rows.Add(dtRow);
                        string a = textBox3.Text;

                        string c = textBox5.Text;
                        string b = textBox4.Text;


                        // NHỚ LÀ PHẢI CÓ DẤU NHÁY ĐƠN '
                        m_strInsertString = "insert into sim values('" + a + "','" + b + "','" + c + "')";

                        // khoi tao doi tuong m_InsertCommand o day
                        m_InsertCommand = new SqlCommand(m_strInsertString, m_sqlConnection);

                        // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                        this.m_DataAdapter2.InsertCommand = m_InsertCommand;

                        //  THUC HIEN CONG VIEC INSERT VAO CO SO DU LIEU.
                        m_DataAdapter2.Update(m_dataSet2);
                        // Application.DoEvents();
                    }
                }

            }




            catch (Exception ex)
            {

                MessageBox.Show("Co loi trong qua trinh ket noi: " + ex.ToString());

            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            int t = 0;
            try
            {

                // THUC HIEN CONG VIEC DELETE.                
                string a = textBox3.Text;


                // so sanh tung dòng của m_dataTable
                // với strMaMonHoc.


                if (textBox3.Text == "")
                {
                    MessageBox.Show("Hãy chọn mã mạng");


                }

                // khoi tao doi tuong m_strInsertString tai day
                else
                {
                    foreach (DataRow dtRow in m_dataTable2.Rows)
                    {
                        // neu trùng
                        if (a == dtRow["simso"].ToString())
                        {
                            // xoa dtRow ra khoi m_dataTable.
                            if (MessageBox.Show("Bạn thật sự muốn xoá", "Thông báo", MessageBoxButtons.OKCancel) == DialogResult.OK)
                            {

                                dtRow.Delete(); t++;
                            }


                        }

                    }

                    m_strDeleteString = "Delete from sim where simso ='" + a + "'";

                    textBox3.Text = "";
                    textBox4.Text = "";
                    textBox5.Text = "";

                }
                // khoi tao doi tuong m_DeleteCommand o day
                m_DeleteCommand = new SqlCommand(m_strDeleteString, m_sqlConnection);

                // chọn DeleteCommand của m_dataAdapter là m_DeleteCommand
                this.m_DataAdapter2.DeleteCommand = m_DeleteCommand;

                //  THUC HIEN CONG VIEC Delete VAO CO SO DU LIEU.
                m_DataAdapter2.Update(m_dataSet2);



            }

            catch (Exception ex)
            {



            }

        }

        private void button6_Click(object sender, EventArgs e)
        {
            try
            {

                string a = textBox3.Text;

                string b = textBox4.Text;
                string c = textBox5.Text;



                // cap nhat lai m_dataTable theo strTenMonHoc.
                foreach (DataRow dtRow in m_dataTable2.Rows)
                {
                    // neu trùng
                    // Sua ten mon hoc theo txtTenMonHoc

                    if (a == dtRow["simso"].ToString())
                    {





                        dtRow[1] = textBox4.Text;
                        dtRow[2] = textBox5.Text;

                    }
                }

                // khoi tao doi tuong m_strUpdateString tai day
                if (a != "")
                {

                    m_strUpdateString = " Update sim set mamang='" + b + "',giatien='"+c+"' where simso='"+a+"'" ;
                }
                // khoi tao doi tuong m_UpdateCommand o day
                m_UpdateCommand = new SqlCommand(m_strUpdateString, m_sqlConnection);

                // chọn UpdateCommand của m_dataAdapter là m_UpdateCommand
                this.m_DataAdapter2.UpdateCommand = m_UpdateCommand;

                //  THUC HIEN CONG VIEC Update VAO CO SO DU LIEU.
                m_DataAdapter2.Update(m_dataSet2);



            }

            catch (Exception ex)
            {

                MessageBox.Show("Co loi trong qua trinh ket noi: " + ex.ToString());

            }

        }

        private void dataGridView2_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            int iRowIndex = -1;
            if (this.dataGridView2.SelectedCells.Count > 0)
            {
                iRowIndex = this.dataGridView2.SelectedCells[0].RowIndex;
            }

            if (iRowIndex >= 0)
            {
                DataGridViewRow dtRow = this.dataGridView2.Rows[iRowIndex];
                if (dtRow.Cells[0].Value != null)
                {

                    textBox3.Text = dtRow.Cells[0].Value.ToString();

                    textBox4.Text = dtRow.Cells[1].Value.ToString();
                    textBox5.Text = dtRow.Cells[2].Value.ToString();



                }

            }
        }

        private void button7_Click(object sender, EventArgs e)
        {
            if (textBox6.Text == "")
            {
                MessageBox.Show("Chưa nhập số sim");
            }
            else
            {
               
                // câu lệnh truy vấn chọn dữ liệu
                m_strSelectString = "select simso,tenmang,giatien from sim,mang where simso like '%" + textBox6.Text + "'and sim.mamang=mang.mamang";
                // doi tuong ket noi
                m_sqlConnection = new SqlConnection(m_strConnectionString);
                // doi tuong sqlCommand
                m_SelectCommand = new SqlCommand(m_strSelectString, m_sqlConnection);

                // doi tuong dataAdapter
                m_DataAdapter = new SqlDataAdapter();
                // doi tuong dataset
                m_dataSet = new DataSet();

                // doi tuong dataTable
                m_dataTable = new DataTable();

                // mở kết nối trong sự kiện khởi tạo
                try
                {
                    m_sqlConnection.Open();


                    // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                    this.m_DataAdapter.SelectCommand = m_SelectCommand;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Không tìm thấy số này");
                }

                // RESET LAI DATASET TRUOC KHI DO DU LIEU TU 
                // DATA ADAPTER
                m_dataSet.Reset();

                // Đẩy bảng dữ liệu lấy từ dataAdapter vào DataSet.
                m_DataAdapter.Fill(m_dataSet);
                // Trích đối tượng DataTable từ DataSet.
                m_dataTable = m_dataSet.Tables[0];

                dataGridView3.DataSource = m_dataTable.DefaultView;

            }
        }

        private void button8_Click(object sender, EventArgs e)
        {
            if (textBox7.Text == "")
            {
                MessageBox.Show("Chưa nhập tên mạng");
            }
            else
            {

                // câu lệnh truy vấn chọn dữ liệu
                m_strSelectString = "select simso,tenmang,giatien from sim,mang where tenmang ='" + textBox7.Text + "'and sim.mamang=mang.mamang";
                // doi tuong ket noi
                m_sqlConnection = new SqlConnection(m_strConnectionString);
                // doi tuong sqlCommand
                m_SelectCommand = new SqlCommand(m_strSelectString, m_sqlConnection);

                // doi tuong dataAdapter
                m_DataAdapter = new SqlDataAdapter();
                // doi tuong dataset
                m_dataSet = new DataSet();

                // doi tuong dataTable
                m_dataTable = new DataTable();

                // mở kết nối trong sự kiện khởi tạo
                try
                {
                    m_sqlConnection.Open();


                    // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                    this.m_DataAdapter.SelectCommand = m_SelectCommand;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Không tìm thấy số này");
                }

                // RESET LAI DATASET TRUOC KHI DO DU LIEU TU 
                // DATA ADAPTER
                m_dataSet.Reset();

                // Đẩy bảng dữ liệu lấy từ dataAdapter vào DataSet.
                m_DataAdapter.Fill(m_dataSet);
                // Trích đối tượng DataTable từ DataSet.
                m_dataTable = m_dataSet.Tables[0];

                dataGridView3.DataSource = m_dataTable.DefaultView;

            }


        }

        private void button9_Click(object sender, EventArgs e)
        {
            // câu lệnh truy vấn chọn dữ liệu
            m_strSelectString = "select simso,tenmang,giatien from sim,mang where len(simso) =10 and sim.mamang=mang.mamang";
            // doi tuong ket noi
            m_sqlConnection = new SqlConnection(m_strConnectionString);
            // doi tuong sqlCommand
            m_SelectCommand = new SqlCommand(m_strSelectString, m_sqlConnection);

            // doi tuong dataAdapter
            m_DataAdapter = new SqlDataAdapter();
            // doi tuong dataset
            m_dataSet = new DataSet();

            // doi tuong dataTable
            m_dataTable = new DataTable();

            // mở kết nối trong sự kiện khởi tạo
            try
            {
                m_sqlConnection.Open();


                // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                this.m_DataAdapter.SelectCommand = m_SelectCommand;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không tìm thấy số này");
            }

            // RESET LAI DATASET TRUOC KHI DO DU LIEU TU 
            // DATA ADAPTER
            m_dataSet.Reset();

            // Đẩy bảng dữ liệu lấy từ dataAdapter vào DataSet.
            m_DataAdapter.Fill(m_dataSet);
            // Trích đối tượng DataTable từ DataSet.
            m_dataTable = m_dataSet.Tables[0];

            dataGridView3.DataSource = m_dataTable.DefaultView;

        }

        private void button10_Click(object sender, EventArgs e)
        {
            // câu lệnh truy vấn chọn dữ liệu
            m_strSelectString = "select simso,tenmang,giatien from sim,mang where len(simso) =11 and sim.mamang=mang.mamang";
            // doi tuong ket noi
            m_sqlConnection = new SqlConnection(m_strConnectionString);
            // doi tuong sqlCommand
            m_SelectCommand = new SqlCommand(m_strSelectString, m_sqlConnection);

            // doi tuong dataAdapter
            m_DataAdapter = new SqlDataAdapter();
            // doi tuong dataset
            m_dataSet = new DataSet();

            // doi tuong dataTable
            m_dataTable = new DataTable();

            // mở kết nối trong sự kiện khởi tạo
            try
            {
                m_sqlConnection.Open();


                // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                this.m_DataAdapter.SelectCommand = m_SelectCommand;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không tìm thấy số này");
            }

            // RESET LAI DATASET TRUOC KHI DO DU LIEU TU 
            // DATA ADAPTER
            m_dataSet.Reset();

            // Đẩy bảng dữ liệu lấy từ dataAdapter vào DataSet.
            m_DataAdapter.Fill(m_dataSet);
            // Trích đối tượng DataTable từ DataSet.
            m_dataTable = m_dataSet.Tables[0];

            dataGridView3.DataSource = m_dataTable.DefaultView;

        }

        private void button12_Click(object sender, EventArgs e)
        {
            if (textBox8.Text == "")
            {
                MessageBox.Show("Chưa nhập số tứ quý");
            }
            else
            {

                // câu lệnh truy vấn chọn dữ liệu
                m_strSelectString = "select simso,tenmang,giatien from sim,mang where simso like '%" + textBox8.Text + "'and sim.mamang=mang.mamang";
                // doi tuong ket noi
                m_sqlConnection = new SqlConnection(m_strConnectionString);
                // doi tuong sqlCommand
                m_SelectCommand = new SqlCommand(m_strSelectString, m_sqlConnection);

                // doi tuong dataAdapter
                m_DataAdapter = new SqlDataAdapter();
                // doi tuong dataset
                m_dataSet = new DataSet();

                // doi tuong dataTable
                m_dataTable = new DataTable();

                // mở kết nối trong sự kiện khởi tạo
                try
                {
                    m_sqlConnection.Open();


                    // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                    this.m_DataAdapter.SelectCommand = m_SelectCommand;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Không tìm thấy số này");
                }

                // RESET LAI DATASET TRUOC KHI DO DU LIEU TU 
                // DATA ADAPTER
                m_dataSet.Reset();

                // Đẩy bảng dữ liệu lấy từ dataAdapter vào DataSet.
                m_DataAdapter.Fill(m_dataSet);
                // Trích đối tượng DataTable từ DataSet.
                m_dataTable = m_dataSet.Tables[0];

                dataGridView3.DataSource = m_dataTable.DefaultView;

            }

        }

        private void button11_Click(object sender, EventArgs e)
        {
            if (textBox9.Text == "")
            {
                MessageBox.Show("Chưa nhập số tam cô");
            }
            else
            {

                // câu lệnh truy vấn chọn dữ liệu
                m_strSelectString = "select simso,tenmang,giatien from sim,mang where simso like '%" + textBox9.Text + "'and sim.mamang=mang.mamang";
                // doi tuong ket noi
                m_sqlConnection = new SqlConnection(m_strConnectionString);
                // doi tuong sqlCommand
                m_SelectCommand = new SqlCommand(m_strSelectString, m_sqlConnection);

                // doi tuong dataAdapter
                m_DataAdapter = new SqlDataAdapter();
                // doi tuong dataset
                m_dataSet = new DataSet();

                // doi tuong dataTable
                m_dataTable = new DataTable();

                // mở kết nối trong sự kiện khởi tạo
                try
                {
                    m_sqlConnection.Open();


                    // chọn SelectCommand của m_dataAdapter là m_SelectCommand
                    this.m_DataAdapter.SelectCommand = m_SelectCommand;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Không tìm thấy số này");
                }

                // RESET LAI DATASET TRUOC KHI DO DU LIEU TU 
                // DATA ADAPTER
                m_dataSet.Reset();

                // Đẩy bảng dữ liệu lấy từ dataAdapter vào DataSet.
                m_DataAdapter.Fill(m_dataSet);
                // Trích đối tượng DataTable từ DataSet.
                m_dataTable = m_dataSet.Tables[0];

                dataGridView3.DataSource = m_dataTable.DefaultView;

            }

        }

    }
}